36#define __STDC_LIMIT_MACROS
37#define __STDC_CONSTANT_MACROS
38#define __STDC_FORMAT_MACROS
48#error Must be placed `#include <mruby.h>` before `#include <stdint.h>`
52#define SIZE_MAX __SIZE_MAX__
54#define SIZE_MAX std::numeric_limits<size_t>::max()
60# define __func__ __FUNCTION__
65#define mrb_assert(p) assert(p)
66#define mrb_assert_int_fit(t1,n,t2,max) assert((n)>=0 && ((sizeof(n)<=sizeof(t2))||(n<=(t1)(max))))
68#define mrb_assert(p) ((void)0)
69#define mrb_assert_int_fit(t1,n,t2,max) ((void)0)
72#if (defined __cplusplus && __cplusplus >= 201703L)
73# define mrb_static_assert(...) static_assert(__VA_ARGS__)
74# define mrb_static_assert1(exp) static_assert(exp)
75# define mrb_static_assert2(exp, str) static_assert(exp, str)
76#elif (defined __cplusplus && __cplusplus >= 201103L) || \
77 (defined _MSC_VER) || \
78 (defined __GXX_EXPERIMENTAL_CXX0X__)
79# define mrb_static_assert2(exp, str) static_assert(exp, str)
80#elif defined __STDC_VERSION__ && \
81 ((__STDC_VERSION__ >= 201112L) || \
82 (defined __GNUC__ && __GNUC__ * 100 + __GNUC_MINOR__ >= 406))
83# define mrb_static_assert2(exp, str) _Static_assert(exp, str)
86# define _mrb_static_assert_cat0(a, b) a##b
87# define _mrb_static_assert_cat(a, b) _mrb_static_assert_cat0(a, b)
89# define _mrb_static_assert_id(prefix) _mrb_static_assert_cat(prefix, __COUNTER__)
91# define _mrb_static_assert_id(prefix) _mrb_static_assert_cat(prefix, __LINE__)
93# define mrb_static_assert2(exp, str) \
94 struct _mrb_static_assert_id(_mrb_static_assert_) { char x[(exp) ? 1 : -1]; }
97#ifndef mrb_static_assert
98# define mrb_static_assert1(exp) mrb_static_assert2(exp, #exp)
99# define mrb_static_assert_expand(...) __VA_ARGS__
100# define mrb_static_assert_selector(a, b, name, ...) name
108# define mrb_static_assert(...) \
109 mrb_static_assert_expand(mrb_static_assert_selector(__VA_ARGS__, mrb_static_assert2, mrb_static_assert1, _)(__VA_ARGS__))
112#define mrb_static_assert_powerof2(num) mrb_static_assert((num) > 0 && (num) == ((num) & -(num)), "need power of 2 for " #num)
127#define FLT_EPSILON (1.19209290e-07f)
130#define DBL_EPSILON ((double)2.22044604925031308085e-16L)
133#define LDBL_EPSILON (1.08420217248550443401e-19L)
136#ifdef MRB_USE_FLOAT32
137#define MRB_FLOAT_EPSILON FLT_EPSILON
139#define MRB_FLOAT_EPSILON DBL_EPSILON
161#ifndef MRB_FIXED_STATE_ATEXIT_STACK_SIZE
162#define MRB_FIXED_STATE_ATEXIT_STACK_SIZE 5
172 const struct RProc *proc;
178 struct RClass *target_class;
179 const void *keep_context;
183enum mrb_fiber_state {
184 MRB_FIBER_CREATED = 0,
188 MRB_FIBER_TRANSFERRED,
189 MRB_FIBER_TERMINATED,
193#define MRB_TASK_CREATED MRB_FIBER_CREATED
194#define MRB_TASK_STOPPED MRB_FIBER_TERMINATED
204 enum mrb_fiber_state status : 4;
209#ifdef MRB_METHOD_CACHE_SIZE
210# undef MRB_NO_METHOD_CACHE
211mrb_static_assert_powerof2(MRB_METHOD_CACHE_SIZE);
215# define MRB_METHOD_CACHE_SIZE (1<<8)
233 const struct RProc *proc;
238#ifndef MRB_NO_METHOD_CACHE
246#ifdef MRB_CONST_CACHE_SIZE
247# undef MRB_NO_CONST_CACHE
248mrb_static_assert_powerof2(MRB_CONST_CACHE_SIZE);
252# define MRB_CONST_CACHE_SIZE (1<<6)
255#ifndef MRB_NO_CONST_CACHE
257 const struct mrb_irep *irep;
265typedef void (*mrb_atexit_func)(
mrb_state*);
267#ifdef MRB_USE_TASK_SCHEDULER
270typedef struct mrb_task_state {
271 struct mrb_task *queues[4];
272 volatile uint32_t tick;
273 volatile uint32_t wakeup_tick;
274 volatile mrb_bool switching;
275 struct mrb_task *main_task;
276 uint8_t scheduler_lock;
290 struct RClass *object_class;
291 struct RClass *class_class;
292 struct RClass *module_class;
293 struct RClass *proc_class;
294 struct RClass *string_class;
295 struct RClass *array_class;
296 struct RClass *hash_class;
297 struct RClass *range_class;
300 struct RClass *float_class;
302 struct RClass *integer_class;
303 struct RClass *true_class;
304 struct RClass *false_class;
306 struct RClass *symbol_class;
307 struct RClass *kernel_module;
311 mrb_bool bootstrapping;
313#ifndef MRB_NO_METHOD_CACHE
317#ifndef MRB_NO_CONST_CACHE
328#ifndef MRB_USE_ALL_SYMBOLS
332#ifdef MRB_USE_DEBUG_HOOK
337#ifdef MRB_BYTECODE_DECODE_OPTION
341 struct RClass *eException_class;
342 struct RClass *eStandardError_class;
345#ifdef MRB_GC_FIXED_ARENA
355#ifdef MRB_FIXED_STATE_ATEXIT_STACK
356 mrb_atexit_func atexit_stack[MRB_FIXED_STATE_ATEXIT_STACK_SIZE];
358 mrb_atexit_func *atexit_stack;
360 uint16_t atexit_stack_len;
362#ifdef MRB_USE_TASK_SCHEDULER
773#define mrb_exc_get(mrb, name) mrb_exc_get_id(mrb, mrb_intern_cstr(mrb, name))
918#define MRB_ARGS_REQ(n) ((mrb_aspec)((n)&0x1f) << 18)
926#define MRB_ARGS_OPT(n) ((mrb_aspec)((n)&0x1f) << 13)
936#define MRB_ARGS_ARG(n1,n2) (MRB_ARGS_REQ(n1)|MRB_ARGS_OPT(n2))
939#define MRB_ARGS_REST() ((mrb_aspec)(1 << 12))
942#define MRB_ARGS_POST(n) ((mrb_aspec)((n)&0x1f) << 7)
945#define MRB_ARGS_KEY(n1,n2) ((mrb_aspec)((((n1)&0x1f) << 2) | ((n2)?(1<<1):0)))
950#define MRB_ARGS_BLOCK() ((mrb_aspec)1)
955#define MRB_ARGS_NOBLOCK() ((mrb_aspec)(1 << 23))
960#define MRB_ARGS_ANY() MRB_ARGS_REST()
965#define MRB_ARGS_NONE() ((mrb_aspec)0)
1085 return mrb->c->ci->mid;
1121#define mrb_strlen_lit(lit) (sizeof(lit "") - 1)
1226#define mrb_intern_lit(mrb, lit) mrb_intern_static(mrb, (lit ""), mrb_strlen_lit(lit))
1241#define mrb_sym2name(mrb,sym) mrb_sym_name(mrb,sym)
1242#define mrb_sym2name_len(mrb,sym,len) mrb_sym_name_len(mrb,sym,len)
1243#define mrb_sym2str(mrb,sym) mrb_sym_str(mrb,sym)
1262#define MRB_OBJ_ALLOC(mrb, tt, klass) ((MRB_VTYPE_TYPEOF(tt)*)mrb_obj_alloc(mrb, tt, klass))
1271#define mrb_str_new_lit(mrb, lit) mrb_str_new_static(mrb, (lit), mrb_strlen_lit(lit))
1274#define mrb_str_new_frozen(mrb,p,len) mrb_obj_freeze(mrb,mrb_str_new(mrb,p,len))
1275#define mrb_str_new_cstr_frozen(mrb,p) mrb_obj_freeze(mrb,mrb_str_new_cstr(mrb,p))
1276#define mrb_str_new_static_frozen(mrb,p,len) mrb_obj_freeze(mrb,mrb_str_new_static(mrb,p,len))
1277#define mrb_str_new_lit_frozen(mrb,lit) mrb_obj_freeze(mrb,mrb_str_new_lit(mrb,lit))
1280MRB_API char* mrb_utf8_from_locale(
const char *p,
int len);
1281MRB_API char* mrb_locale_from_utf8(
const char *p,
int len);
1282#define mrb_locale_free(p) free(p)
1283#define mrb_utf8_free(p) free(p)
1285#define mrb_utf8_from_locale(p, l) ((char*)(p))
1286#define mrb_locale_from_utf8(p, l) ((char*)(p))
1287#define mrb_locale_free(p)
1288#define mrb_utf8_free(p)
1320#ifndef MRB_NO_METHOD_CACHE
1323#define mrb_method_cache_clear(mrb) ((void)0)
1325#ifndef MRB_NO_CONST_CACHE
1326void mrb_const_cache_clear(
mrb_state *mrb);
1328#define mrb_const_cache_clear(mrb) ((void)0)
1352#define MRB_OPEN_FAILURE(mrb) (!(mrb) || (mrb)->exc)
1362#define MRB_OPEN_SUCCESS(mrb) (!MRB_OPEN_FAILURE(mrb))
1397#define mrb_toplevel_run_keep(m,p,k) mrb_top_run((m),(p),mrb_top_self(m),(k))
1398#define mrb_toplevel_run(m,p) mrb_toplevel_run_keep((m),(p),0)
1399#define mrb_context_run(m,p,s,k) mrb_vm_run((m),(p),(s),(k))
1410#define mrb_as_float(mrb, x) mrb_float(mrb_ensure_float_type(mrb, x))
1412#define mrb_to_float(mrb, val) mrb_ensure_float_type(mrb, val)
1423#define MRB_RECURSIVE_P(mrb, mid, obj1, obj2) \
1424 mrb_recursive_method_p(mrb, mid, obj1, obj2)
1426#define MRB_RECURSIVE_UNARY_P(mrb, mid, obj) \
1427 mrb_recursive_method_p(mrb, mid, obj, mrb_nil_value())
1429#define MRB_RECURSIVE_BINARY_P(mrb, mid, obj1, obj2) \
1430 mrb_recursive_method_p(mrb, mid, obj1, obj2)
1432#define MRB_RECURSIVE_FUNC_P(mrb, mid, obj) \
1433 mrb_recursive_func_p(mrb, mid, obj, mrb_nil_value())
1435#define MRB_RECURSIVE_BINARY_FUNC_P(mrb, mid, obj1, obj2) \
1436 mrb_recursive_func_p(mrb, mid, obj1, obj2)
1438#define mrb_gc_arena_save(mrb) ((mrb)->gc.arena_idx)
1439#define mrb_gc_arena_restore(mrb, idx) ((mrb)->gc.arena_idx = (idx))
1445#define mrb_gc_mark_value(mrb,val) do {\
1446 if (!mrb_immediate_p(val)) mrb_gc_mark((mrb), mrb_basic_ptr(val)); \
1449#define mrb_field_write_barrier_value(mrb, obj, val) do{\
1450 if (!mrb_immediate_p(val)) mrb_field_write_barrier((mrb), (obj), mrb_basic_ptr(val)); \
1455#define mrb_convert_type(mrb, val, type, tname, method) mrb_type_convert(mrb, val, type, mrb_intern_lit(mrb, method))
1457#define mrb_check_convert_type(mrb, val, type, tname, method) mrb_type_convert_check(mrb, val, type, mrb_intern_lit(mrb, method))
1468#define ISASCII(c) ((unsigned)(c) <= 0x7f)
1469#define ISPRINT(c) (((unsigned)(c) - 0x20) < 0x5f)
1470#define ISSPACE(c) ((c) == ' ' || (unsigned)(c) - '\t' < 5)
1471#define ISUPPER(c) (((unsigned)(c) - 'A') < 26)
1472#define ISLOWER(c) (((unsigned)(c) - 'a') < 26)
1473#define ISALPHA(c) ((((unsigned)(c) | 0x20) - 'a') < 26)
1474#define ISDIGIT(c) (((unsigned)(c) - '0') < 10)
1475#define ISXDIGIT(c) (ISDIGIT(c) || ((unsigned)(c) | 0x20) - 'a' < 6)
1476#define ISALNUM(c) (ISALPHA(c) || ISDIGIT(c))
1477#define ISBLANK(c) ((c) == ' ' || (c) == '\t')
1478#define ISCNTRL(c) ((unsigned)(c) < 0x20 || (c) == 0x7f)
1479#define TOUPPER(c) (ISLOWER(c) ? ((c) & 0x5f) : (c))
1480#define TOLOWER(c) (ISUPPER(c) ? ((c) | 0x20) : (c))
1503#define MRB_ERROR_SYM(sym) mrb_intern_lit(mrb, #sym)
1504#define E_EXCEPTION mrb->eException_class
1505#define E_STANDARD_ERROR mrb->eStandardError_class
1506#define E_RUNTIME_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RuntimeError))
1507#define E_TYPE_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(TypeError))
1508#define E_ZERODIV_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ZeroDivisionError))
1509#define E_ARGUMENT_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ArgumentError))
1510#define E_INDEX_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(IndexError))
1511#define E_RANGE_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RangeError))
1512#define E_NAME_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NameError))
1513#define E_NOMETHOD_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NoMethodError))
1514#define E_SCRIPT_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ScriptError))
1515#define E_SYNTAX_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(SyntaxError))
1516#define E_LOCALJUMP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(LocalJumpError))
1517#define E_REGEXP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RegexpError))
1518#define E_FROZEN_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FrozenError))
1519#define E_NOTIMP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NotImplementedError))
1520#define E_KEY_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(KeyError))
1522# define E_FLOATDOMAIN_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FloatDomainError))
1549#define mrb_string_type(mrb, str) mrb_ensure_string_type(mrb,str)
1550#define mrb_to_str(mrb, str) mrb_ensure_string_type(mrb,str)
1552#define mrb_str_to_str(mrb, str) mrb_obj_as_string(mrb, str)
1557#define mrb_as_int(mrb, val) mrb_integer(mrb_ensure_int_type(mrb, val))
1559#define mrb_to_integer(mrb, val) mrb_ensure_int_type(mrb, val)
1560#define mrb_to_int(mrb, val) mrb_ensure_int_type(mrb, val)
1578#define mrb_int(mrb, val) mrb_as_int(mrb, val)
1624#define E_FIBER_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FiberError))
1629#define mrb_alloca(mrb, size) mrb_temp_alloc(mrb, size)
1638#ifdef MRB_PRESYM_SCANNING
1639# include <mruby/presym/scanning.h>
1650mrbmemcpy(
void *dst,
const void *src,
size_t n)
1652 char *d = (
char*)dst;
1653 const char *s = (
const char*)src;
1658#define memcpy(a,b,c) mrbmemcpy(a,b,c)
1661mrbmemset(
void *s,
int c,
size_t n)
1668#define memset(a,b,c) mrbmemset(a,b,c)
1671#define mrb_int_hash_func(mrb,key) (uint32_t)((key)^((key)<<2)^((key)>>2))
1673#define MRB_UNIQNAME(name) MRB_UNIQNAME_1(name, __LINE__)
1674#define MRB_UNIQNAME_1(name, line) MRB_UNIQNAME_2(name, line)
1675#define MRB_UNIQNAME_2(name, line) name##line
Specifies the number of arguments a function takes.
mruby common platform definition"
#define MRB_INLINE
Declare a function as always inlined.
Definition common.h:97
#define MRB_END_DECL
End declarations in C mode.
Definition common.h:28
#define MRB_BEGIN_DECL
Start declarations in C mode.
Definition common.h:26
#define MRB_API
Declare a public mruby API function.
Definition common.h:108
#define mrb_noreturn
Shared compiler macros.
Definition common.h:50
garbage collector for mruby
void mrb_prepend_module(mrb_state *mrb, struct RClass *cla, struct RClass *prepended)
Prepends a module in another class or module.
Definition class.c:2187
mrb_value mrb_fiber_new(mrb_state *mrb, const struct RProc *proc)
Create a new Fiber from proc object.
mrb_int mrb_cmp(mrb_state *mrb, mrb_value obj1, mrb_value obj2)
Compares two mrb_value objects (obj1 and obj2).
Definition numeric.c:2248
mrb_value mrb_fiber_alive_p(mrb_state *mrb, mrb_value fib)
Check if a Fiber is alive.
mrb_int mrb_get_argc(mrb_state *mrb)
Retrieve number of arguments from mrb_state.
Definition class.c:1212
mrb_value mrb_vm_run(mrb_state *mrb, const struct RProc *proc, mrb_value self, mrb_int stack_keep)
Executes a mruby bytecode sequence (iseq) within the VM.
Definition vm.c:1630
mrb_value mrb_fiber_yield(mrb_state *mrb, mrb_int argc, const mrb_value *argv)
Yield a Fiber.
mrb_value mrb_funcall(mrb_state *mrb, mrb_value val, const char *name, mrb_int argc,...)
Call existing Ruby functions.
Definition vm.c:605
void * mrb_basic_alloc_func(void *, size_t)
The memory allocation function.
Definition allocf.c:26
struct RClass * mrb_module_new(mrb_state *mrb)
Creates a new module, Module.
Definition class.c:3413
mrb_value mrb_vm_exec(mrb_state *mrb, const struct RProc *proc, const mrb_code *iseq)
Executes a sequence of mruby bytecode instructions.
Definition vm.c:2214
mrb_value mrb_funcall_id(mrb_state *mrb, mrb_value val, mrb_sym mid, mrb_int argc,...)
Calls a method on an object using a method ID.
Definition vm.c:641
struct RClass * mrb_define_module(mrb_state *mrb, const char *name)
Defines a new module.
Definition class.c:484
mrb_value mrb_obj_dup(mrb_state *mrb, mrb_value obj)
Duplicate an object.
Definition class.c:4315
mrb_value mrb_funcall_argv(mrb_state *mrb, mrb_value val, mrb_sym name, mrb_int argc, const mrb_value *argv)
Call existing Ruby functions.
Definition vm.c:889
mrb_value mrb_obj_new(mrb_state *mrb, struct RClass *c, mrb_int argc, const mrb_value *argv)
Initialize a new object instance of c class.
Definition class.c:3064
mrb_value mrb_yield_argv(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv)
Yields to a block with an array of arguments.
Definition vm.c:1320
void mrb_define_const(mrb_state *mrb, struct RClass *cla, const char *name, mrb_value val)
Defines a constant.
Definition variable.c:1513
const mrb_value * mrb_get_argv(mrb_state *mrb)
Retrieve an array of arguments from mrb_state.
Definition class.c:1240
void mrb_undef_method(mrb_state *mrb, struct RClass *cla, const char *name)
Undefines a method.
Definition class.c:3662
uint8_t mrb_code
mruby C API entry point
Definition mruby.h:148
mrb_int mrb_get_args_a(mrb_state *mrb, mrb_args_format format, void **ptr)
Array version of mrb_get_args().
Definition class.c:2000
mrb_bool mrb_class_defined_under(mrb_state *mrb, struct RClass *outer, const char *name)
Returns an mrb_bool.
Definition class.c:713
mrb_value mrb_get_arg1(mrb_state *mrb)
Retrieve the first and only argument from mrb_state.
Definition class.c:1267
mrb_value mrb_fiber_resume(mrb_state *mrb, mrb_value fib, mrb_int argc, const mrb_value *argv)
Resume a Fiber.
struct RClass * mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super)
Defines a new class.
Definition class.c:606
mrb_int mrb_get_args(mrb_state *mrb, mrb_args_format format,...)
Retrieve arguments from mrb_state.
Definition class.c:1970
mrb_state * mrb_open(void)
Creates new mrb_state.
Definition state.c:77
void mrb_include_module(mrb_state *mrb, struct RClass *cla, struct RClass *included)
Include a module in another class or module.
Definition class.c:2127
struct RClass * mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
Gets a child class.
Definition class.c:746
struct RClass * mrb_class_new(mrb_state *mrb, struct RClass *super)
Creates a new instance of Class, Class.
Definition class.c:3381
mrb_bool mrb_block_given_p(mrb_state *mrb)
Check if a block argument is given from mrb_state.
Definition class.c:1298
void mrb_define_module_function(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t fun, mrb_aspec aspec)
Defines a module function.
Definition class.c:2744
void mrb_close(mrb_state *mrb)
Closes and frees a mrb_state.
Definition state.c:186
mrb_value mrb_str_new_cstr(mrb_state *, const char *)
Turns a C string into a Ruby string value.
Definition string.c:229
static mrb_value mrb_class_new_instance(mrb_state *mrb, mrb_int argc, const mrb_value *argv, struct RClass *c)
Definition mruby.h:686
void mrb_define_singleton_method(mrb_state *mrb, struct RObject *cla, const char *name, mrb_func_t fun, mrb_aspec aspec)
Defines a singleton method.
Definition class.c:2623
mrb_value mrb_top_run(mrb_state *mrb, const struct RProc *proc, mrb_value self, mrb_int stack_keep)
Enter the mruby VM and execute the proc.
Definition vm.c:3812
mrb_state * mrb_open_core(void)
Create new mrb_state with just the mruby core.
Definition state.c:44
mrb_bool mrb_class_defined(mrb_state *mrb, const char *name)
Returns an mrb_bool.
Definition class.c:683
void mrb_define_method(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t func, mrb_aspec aspec)
Defines a global function in Ruby.
Definition class.c:1113
struct RClass * mrb_exc_get_id(mrb_state *mrb, mrb_sym name)
Gets a exception class.
Definition class.c:811
mrb_value mrb_singleton_class(mrb_state *mrb, mrb_value val)
Returns the singleton class of an object.
Definition class.c:2593
struct RClass * mrb_define_class_under(mrb_state *mrb, struct RClass *outer, const char *name, struct RClass *super)
Defines a new class under a given module.
Definition class.c:938
struct RClass * mrb_singleton_class_ptr(mrb_state *mrb, mrb_value val)
Returns the singleton class of an object.
Definition class.c:2547
mrb_value mrb_funcall_with_block(mrb_state *mrb, mrb_value val, mrb_sym name, mrb_int argc, const mrb_value *argv, mrb_value block)
Call existing Ruby functions with a block.
Definition vm.c:801
mrb_value mrb_yield(mrb_state *mrb, mrb_value b, mrb_value arg)
Yields to a block with a single argument.
Definition vm.c:1347
struct RClass * mrb_module_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
Gets a module defined under another module.
Definition class.c:840
mrb_value mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv, mrb_value self, struct RClass *c)
Yields to a block with a specific self object and class context.
Definition vm.c:1296
const char * mrb_args_format
Format specifiers for {mrb_get_args} function.
Definition mruby.h:1004
void mrb_stack_extend(mrb_state *, mrb_int)
Extends the VM stack.
Definition vm.c:226
mrb_bool mrb_obj_respond_to(mrb_state *mrb, struct RClass *c, mrb_sym mid)
Returns true if obj responds to the given method.
Definition class.c:3189
void mrb_undef_class_method(mrb_state *mrb, struct RClass *cls, const char *name)
Undefine a class method.
Definition class.c:3709
struct RClass * mrb_module_get(mrb_state *mrb, const char *name)
Gets a module.
Definition class.c:871
struct RClass * mrb_class_get(mrb_state *mrb, const char *name)
Gets a class.
Definition class.c:778
mrb_sym mrb_intern_cstr(mrb_state *mrb, const char *str)
Create a symbol from C string.
Definition symbol.c:491
mrb_value(* mrb_func_t)(mrb_state *mrb, mrb_value self)
Function pointer type for a function callable by mruby.
Definition mruby.h:227
mrb_bool mrb_recursive_func_p(mrb_state *mrb, mrb_sym mid, mrb_value obj1, mrb_value obj2)
Check if a C function call is recursive.
Definition kernel.c:177
void mrb_define_class_method(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t fun, mrb_aspec aspec)
Defines a class method.
Definition class.c:2672
Class class.
Definition class.h:17
Proc class.
Definition proc.h:26
Definition variable.c:258
Definition boxing_nan.h:40